'''
实现 pow(x, n) ，即计算 x 的 n 次幂函数（即，xn）。不得使用库函数，同时不需要考虑大数问题。

 

示例 1：

输入：x = 2.00000, n = 10
输出：1024.00000
示例 2：

输入：x = 2.10000, n = 3
输出：9.26100
示例 3：

输入：x = 2.00000, n = -2
输出：0.25000
解释：2-2 = 1/22 = 1/4 = 0.25

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/shu-zhi-de-zheng-shu-ci-fang-lcof
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
'''

class Solution(object):
    def myPow(self, x, n):
        """
        :type x: float
        :type n: int
        :rtype: float
        """
        if n == 0:
            return 1
        if n < 0:
            flag = 1
            n = -n
        else:
            flag = 0
        def my(x, n):
            if n == 0:
                return 1
            if n % 2 == 1:
                result = x
            else:
                result = 1
            y = my(x,n/2)
            return result*y*y
        aa = my(x, n)
        if flag == 1:
            return 1 / float(aa)
        else:
            return aa
x = 0.44528
n = 0
Solution().myPow(x,n)